Call Hold and Retrieve

Call hold and retrieve:

The party that initiates the hold is called the holding party; the other party is called the held party.
After a successful Hold, the holding party hears a dial tone (HELD_TONE defined in the device's Call Progress Tones file).
After a successful retrieve, the voice is connected again.
The hold and retrieve functionalities are implemented by re-INVITE messages. The IP address 0.0.0.0 as the connection IP address or the string ‘a=inactive’ in the received re-INVITE SDP cause the device to enter Hold state and to play the held tone (configured in the device) to the PBX/PSTN. If the string ‘a=sendonly’ is received in the SDP message, the device stops sending RTP packets, but continues to listen to the incoming RTP packets. Usually, the remote party plays, in this scenario, Music on Hold (MOH) and the device forwards the MOH to the held party.

You can also configure the device to keep a call on-hold for a user-defined time after which the call is disconnected, using the [HeldTimeout] parameter.

When the Tel side puts the call on hold (hookflash), the device plays a dial tone to the Tel side (dial tone timeout starts according to the 'Dial Tone Duration' parameter, which is 16 sec. by default), expecting the Tel side to do some action (e.g., make another call, conferencing, or call transfer). If the 'Dial Tone Duration' parameter expires as no DTMF digits were collected (i.e., Tel side did nothing), the device plays a congestion tone to the Tel side (and if the Tel side goes on-hook, the phone rings and if the Tel side then goes off-hook, the IP side is retrieved).